public class JellyfinItemsDto
{
    public List<JellyfinItemDto> Items { get; set; } = new();
    public int TotalRecordCount { get; set; }
    public int StartIndex { get; set; }
}

public class JellyfinItemDto
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Type { get; set; }
    public string MediaType { get; set; }
    public string Path { get; set; }
    public bool IsFolder { get; set; }
    public string ParentId { get; set; }
    public DateTime? PremiereDate { get; set; }
    public int? ProductionYear { get; set; }
    public string Overview { get; set; }
    public Dictionary<string, string> ImageTags { get; set; }
    public List<MediaSourceInfo> MediaSources { get; set; } = new();
}

public class MediaSourceInfo
{
    public string Id { get; set; }
    public string Path { get; set; }
    public string Protocol { get; set; }
    public string Container { get; set; }
    public long Size { get; set; }
    public string Name { get; set; }
    public bool IsRemote { get; set; }
    public long RunTimeTicks { get; set; }
    public bool SupportsTranscoding { get; set; }
    public bool SupportsDirectStream { get; set; }
    public bool SupportsDirectPlay { get; set; }
    public bool IsInfiniteStream { get; set; }
    public bool RequiresOpening { get; set; }
    public bool RequiresClosing { get; set; }
} 